package com.tarena.day030;
/** 逻辑与比较运算 */
public class LogicDemo {
  public static void main(String[] args) {
    int age = 12;
    char sex = '男';
    boolean isMan = sex=='男';
    System.out.println(isMan);//true
    boolean isChild = age<16;
    
    boolean isBoy = isChild && isMan;//&& and 并且
    boolean isGirl = isChild && ! isMan;//! not 非, 不是
    boolean isKid = isBoy || isGirl; //|| or 或者
    
    System.out.println(isKid); 
    
    //"允许60岁以上的老太太进来" 
    age = 68; sex = '男';
    //&& 短路的与(并且)运算 第一个表达式是false就不再执行第二个了
    //age++ 用来检测第二个表达式是否执行的测试工具
    if(sex=='女' && age++ >= 60){
      System.out.println("亲, 老奶奶好!"); 
    }
    System.out.println("age="+age);//68, 说明了&&是短路运算
//非短路与运算: &
    age = 68; sex = '男';
    //& 两端都执行, 有些不合理, 使用的不多, 考试中经常出现
    if(sex=='女' & age++ >= 60){
      System.out.println("亲, 老奶奶好!"); 
    }
    System.out.println("age="+age);//69, 说明了&&是非短路运算
 //短路的或  ||
    age = 28; sex='女';
    //允许女的或是60以上的老头进来
    //|| 短路或, 如果第一个表达式是true, 第二个表达式不执行了
    if(sex=='女' || age++>=60){
      System.out.println("亲, 要点啥!"); 
    }  
    System.out.println("age="+age);//28
 //非短路的或 | 
    age = 28; sex='女';
    //允许女的或是60以上的老头进来
    //| 非短路或, 两端表达式都执行 
    if(sex=='女' | age++>=60){
      System.out.println("亲, 要点啥!"); 
    }  
    System.out.println("age="+age);//29
  }
}













